var async = require('async')
var _path = require('path')
var fs = require('fs')

module.exports = function (app) {
    var mysql = app.datasources.mysql;
    var dbManager = app.models.sys_manager;

    var role = app.models.sys_role;
    var roleMapping = app.models.sys_role_mapping;
    mysql.autoupdate('AccessToken', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_role', function (err) {})
    mysql.autoupdate('sys_role_mapping', function (err) {})
    mysql.autoupdate('sys_manager', function (err) {
        if (err) throw err;
        dbManager.find({
            where: {
                username: 'admin'
            }
        }, function (err, results) {
            if (err)
                console.log(err)
            var superUser = {
                username: 'admin',
                nickname: '超级管理员',
                avatar_url: '',
                password: '123456',
                mobile: '13713731052',
                email: 'andesion@vip.qq.com',
            }
            if (results.length <= 0) {
                dbManager.create(superUser, function (err, result) {
                    //create the admin role
                    role.create({
                        name: 'admin',
                        description: '超级管理员'
                    }, function (err, role) {
                        if (err) throw err;
                        role.principals.create({
                            principalType: roleMapping.USER,
                            principalId: result.id
                        }, function (err, principal) {
                            if (err) throw err;
                            console.log('Created principal:', principal);
                        });
                    });
                })
            } else {
                superUser = new dbManager(superUser);
                superUser.id = results[0].id;
                dbManager.replaceOrCreate(superUser, function (err, result) {
                    return console.log(err)
                })
            }
            return console.log('super manager is created!');
        })
    })
    mysql.autoupdate('sys_smscode', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_user', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_user_info', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_user_graduation', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_user_employment', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_article', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_activity', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_extend_col', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_comment', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('sys_category', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('wx_mp_account', function (err) {
        if (err) throw err;
    })
    mysql.autoupdate('wx_mp_autoreply', function (err) {
        if (err) throw err;
    })
}